/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package cz.vse.adventura.po1715.xshet00_shevtsova.gui;

import cz.pecinovsky.english.pojj.adv_framework.game_gui.IBagG;
import cz.pecinovsky.english.pojj.adv_framework.game_gui.IGameG;
import cz.pecinovsky.english.pojj.adv_framework.game_gui.IObjectG;
import cz.pecinovsky.english.pojj.adv_framework.test_util.default_gui.APanelPrvků;
import cz.pecinovsky.english.pojj.adv_framework.test_util.default_gui.PrvekPanelu;
import java.util.ArrayList;
import java.util.Collection;

/**
 *
 * @author TShevtsova
 */

@SuppressWarnings("serial")
class PanelBatohu extends APanelPrvků<IBagG>
{
//== KONSTANTNÍ ATRIBUTY TŘÍDY =================================================
//== PROMĚNNÉ ATRIBUTY TŘÍDY ===================================================
//== STATICKÝ INICIALIZAČNÍ BLOK - STATICKÝ KONSTRUKTOR ========================
//== KONSTANTNÍ ATRIBUTY INSTANCÍ ==============================================
//== PROMĚNNÉ ATRIBUTY INSTANCÍ ================================================
//== PŘÍSTUPOVÉ METODY VLASTNOSTÍ TŘÍDY ========================================
//== OSTATNÍ NESOUKROMÉ METODY TŘÍDY ===========================================

//##############################################################################
//== KONSTRUKTORY A TOVÁRNÍ METODY =============================================

    /***************************************************************************
     * Vytoří nový panel pro zobrazení obsahu batohu.
     */
    PanelBatohu()
    {
        super("Obsah batohu");
   }



//== ABSTRAKTNÍ METODY =========================================================
//== PŘÍSTUPOVÉ METODY VLASTNOSTÍ INSTANCÍ =====================================
//== OSTATNÍ NESOUKROMÉ METODY INSTANCÍ ========================================

    /***************************************************************************
     * Hlášeni o změně obsahu batohu.
     *
     * @param batoh Batoh, jehož obsah se změnil
     */
    @Override
    public void notice(IBagG batoh)
    {
        Collection<PrvekPanelu> prvky = new ArrayList<PrvekPanelu>();
        for (IObjectG předmět : batoh.getObjects()) {
            PrvekPanelu pp = new PrvekPanelu(předmět);
            prvky.add(pp);
        }
        zpracujHlášení(prvky);
    }


    /***************************************************************************
     * Inicializuje panel pro práci s novou hrou.
     *
     * @param hra Hra, s níž bude panel od této chvíle komunikovat
     */
    @Override
    public void inicializuj(IGameG hra)
    {
        hra.addBagListener(this);
        notice(hra.getBag());    //Kdyby hráč začínal s neprázným batohem
    }



//== SOUKROMÉ A POMOCNÉ METODY TŘÍDY ===========================================
//== SOUKROMÉ A POMOCNÉ METODY INSTANCÍ ========================================
//== INTERNÍ DATOVÉ TYPY =======================================================
//== TESTY A METODA MAIN =======================================================
//
//    /***************************************************************************
//     * Testovací metoda.
//     */
//    public static void test()
//    {
//        PanelBatohu inst = new PanelBatohu();
//    }
//    /** @param args Parametry příkazového řádku - nepoužívané. */
//    public static void main( String[] args )  {  test();  }
}
